package com.atguigu.lease.web.admin.custom.converter;

import com.atguigu.lease.model.enums.ItemType;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

/*
* 实现String 12 和 枚举ItemType类型转化
* Converter<s是原类型，T是目标类型> S=》String
* 实现类型转化
* */
@Component
public class StringToItemTypeConverter implements Converter<String,ItemType> {

    /*
    * @param source 要转化的数据原值“1”，“2”
    * @return ItemType 转化的对应枚举类型
    * */
    /*@Override
    public ItemType convert(String source) {
        if (source.equals("1")){
            return ItemType.APARTMENT;
        }
        if(source.equals("2")){return ItemType.ROOM;}
        throw new RuntimeException("数据类型错误，值必须是1/2");
    }*/

    @Override
    public ItemType convert(String source) {
        //枚举对象.values() -> 获取枚举内部的具体对象类型集合
        for (ItemType itemType : ItemType.values()) {
            if (itemType.getCode() == Integer.parseInt(source)){ return itemType;}
        }
        throw new RuntimeException("数据类型错误，值必须是1/2");
    }
}

